There are many different types of color printing devices that can be used to produce digital color images including softcopy displays, and hardcopy devices such as electrophotographic printers, ink-jet printers, thermal dye-transfer printers, and output writers which write onto photographic materials. These devices are generally driven by a set of device control signals which are used to control the amount of colorant produced for each of a series of color channels. The form of the control signal will vary as a function of the type of color printing device. In some cases, the control signal may be a voltage, in other cases it may be a pulse count, etc. Generally, the various control signals can be represented by a set of digital code values, one digital code value for each color channel.
Each type and model of color printing device will typically have its own unique color reproduction and color gamut characteristics. As a result, a given set of device control signals will produce one color on a first device, and will produce a second different color on a second device. Similarly, a color which is within the color gamut of a first device, may be outside the color gamut of a second device, and therefore, will not be reproducible.
The wide variety of color reproduction and color gamut characteristics that exist for various color printing devices has led to a need for developing color management solutions. Color management solutions generally involve characterizing the output response of a color printing device as a function of the device control signals. This characterization of the device output response is sometimes referred to as a device profile. The output response is typically measured in terms of device-independent color spaces that are derivatives of the well-known CIE XYZ tristimulus values. Popular color spaces include CIELAB and CIELUV, but there are numerous other possibilities. Once the output response of the color printing device has been characterized, it is then possible to determine the device control signals that are necessary to produce some desired aim color. Therefore, if color reproduction characteristics of the various input and output devices in a color reproduction system are known, it is possible to determine the device control signals that are required to produce a match between an input and an output color image.
The output response of a digital printing device is typically characterized by printing a set of color patches using known device control signals. The color patches are then measured using an instrument such as a spectrophotometer or a colorimeter to determine the corresponding output response for each color patch. A model of the resulting output response is then determined as a function of the device control signals. Different approaches for determining the output response model include fitting some type of polynomial function to the data, or building an interpolative model to interpolate between the measured patch values. Quite often, the color patches are chosen so that they fall on a lattice of device control signals. FIG. 1 illustrates a lattice 10 of device control signals. In this case, the device control signals correspond to three different color channels: cyan, magenta, and yellow.
Since it is usually important to be able to determine to device control signals necessary to produce a desired output response, it is typically necessary to be able to invert the output response models. As long as the output response of the color printing device is well-behaved, there are many techniques that can be successfully applied to perform this inversion process. However, there are a number of problems that are encountered when the output response has certain characteristics. One particularly difficult type of problem to deal with involves regions of color space where changes in the device control signal do not produce significant changes in the device response. FIG. 2 shows a one-dimensional example of this type of device response. Throughout much of the device control signal range, the device response function 20 is well-behaved. However, in the toe 22 and shoulder 24 portions of the device response function 20, it can be seen that a change in the device control signal results in no changes in the output response. Consequently, there are many different values of the control signal which will produce the same output response. The difficulty comes when it is necessary to invert the output response. If it is desired to produce a particular output response that is at, or near, one of the flat regions in the device response, there are many possible device control signals that can be used to obtain the desired response. The problem is exacerbated by the presence of any noise in the measured output response. In this case, the flat regions of the device response function 20 can have small non-monotonicities which complicate the inversion process further.
The net result of these flat regions in the device response function 20 is that small changes in the desired output response can result in large changes in the device control signal. Or even worse, the relationship between the desired output response and the corresponding device control signal may be non-monotonic. Simplistically, it might be concluded that these phenomena are somewhat irrelevant since all of the device control signals in question map to the same output response anyway. However, this is not always the case. Sometimes, even though the changes in the output response may be small relative to a measuring instrument, the human eye may be able to detect contours in an image where the device control signal makes a large jump. This is particularly true if the device response changes a little between the time that the device response was characterized, and the time when an image is generated. In this case, it is possible that two control signals which may have originally produced an identical output response, may now produce a noticeably different device response.
FIG. 3 shows an example of a device response function 30 for a typical color printing device. In this case, the grid lines correspond to the output response (in the CIELAB color space) for the lattice of device control signals that was shown in FIG. 1. It can be seen that the device response function 30 has the same topology as the cube in FIG. 1, except that it has been distorted to represent the color reproduction characteristics of the color printing device. Labels are shown indicating the directions of increasing cyan (C), magenta (M) and yellow (Y) colorants. For this example, it is assumed that the amount of colorant that is produced for each of the color channels follows a relationship like that shown in FIG. 2. It can be seen for parts of the color space corresponding to device control signals that are not near one extreme or the other 32, that the device response function 30 changes smoothly with changes in the device control signal. However, for parts of the color space where one or more of the device control signals are near one extreme or the other 34, the resulting device response function 30 is approximately invariant. This can be seen from the fact that the grid lines are bunched up close together. In the extreme case, the grid-lines would lie on top of each other, or could even be jumbled due to noise or non-monotonicities in the device response. For example, as the device control signal for one of the channels is increased, the device response may remain approximately constant. It should be noted that the invariance is not limited to changes with respect to a single input channel. In some cases, the device response may remain approximately constant when two or more of the device control signals are simultaneously changed, even if the device response is not invariant when a single device control signal is changed.
Determining an inverse model for a device like that shown in FIG. 3 is problematic as a result of the approximately invariant regions in the device response function 30. For example, some common techniques for creating an inverse model involve inverse tetrahedral interpolation techniques. In this case, each of the lattice cubes in a lattice of device control signals, like that shown in FIG. 1, is divided into a set of tetrahedra. One method for dividing a lattice cube 40 into six tetrahedra 42 is illustrated in FIG. 4. The corresponding device response function shown in FIG. 3 would also be subdivided into corresponding tetrahedra. To perform an inverse interpolation, it is then necessary to identify which of the tetrahedra of the device response function 30 a specific aim color falls within, and the corresponding device control signals are then computed. However, if there are approximately invariant regions in the device response function 30, this process will result in large changes in the device control signals for only small changes in the aim color. An even worse problem can occur when a given aim color may fall within several different tetrahedra due to inconsistencies in the topology of the node positions, and may therefore result in unstable estimates of the corresponding device control signals. Other prior art approaches for building an inverse model will suffer from similar problems. As a result, the inverse models frequently suffer from artifacts such as noise and contouring for colors that fall near or within these approximately invariant regions in the device response function. The artifacts can become particularly pronounced if the device response drifts between the time that the inverse model was determined, and the time when an image is printed. In this case, two device control signals which may have produced an identical output response to begin with may now produce significantly different output responses.